iT邦幫忙

2024 iThome 鐵人賽

DAY 5
1
Python

使用 WiFiBoy Python 玩學機來學物聯網應用 系列 第 5

05. MicroPython 基礎語法簡介(上)

  • 分享至 

  • xImage
  •  

MicroPython 語言學習的幾個階段

  1. 入門階段

目標:了解基本語法和基本概念。

學習基礎知識,包括變數、資料型別、基本輸入輸出、條件語句、迴圈等。這些知識是學習任何程式語言的基礎。

  • 理解什麼是 MicroPython,如何安裝和設置開發環境。
  • 學習基本語法規則,如變數定義、運算符、基本數據結構(列表、字典等)。
  • 練習寫一些簡單的程式,例如寫一個簡易型文字介面的計算機。
  1. 中級階段

目標:掌握更多進階概念和功能。

學習者開始熟悉更多進階主題,如函數、模組、檔案操作、異步操作等。此外,MicroPython 針對 ESP32 晶片部份特有的硬體操作,如控制 LED、按鈕、感測器等。

步驟:

  • 理解並使用函數來組織程式碼。
  • 學習如何載入和使用內建模組和第三方模組。
  • 學習如何與硬體元件互動。
  1. 高級階段

目標:進行實際項目開發,提升解決問題的能力。

開始應用所學知識進行實際專案開發,可能涉及更複雜的系統設計和優化。例如,可開發一個完整的物聯網(IoT)系統,從感測器數據收集到資料處理和傳輸。

步驟:

  • 設計並實現較為複雜的項目。
  • 優化程式碼效率和效能。
  • 學習如何進行除錯和排除錯誤。
  1. 專業階段

目標:成為MicroPython的專家,貢獻開源社區或開發高效的解決方案。

學習者可能會參與到 MicroPython 核心開發,或是針對特定的應用領域進行深度優化和研究。開始撰寫技術文件、參與開源社區、甚至是創建自己的 MicroPython 函式庫與模組。

步驟:

  • 參與開源社區的貢獻,如提交 bug 修復或新功能。
  • 開發和分享自己的工具、模組或開發框架。
  • 持續學習最新的技術和最佳實踐。

程式碼

01. 讓你的玩學機點亮機器內建的 LED,並間隔 1 秒持續閃爍。

# 05_01. 讓你的玩學機點亮機器內建的 LED,並間隔 1 秒持續閃爍。
from machine import Pin
from time import sleep

# 定義 LED 的輸出腳位,WiFiBoy Python IoT 是 Pin 16
led = Pin(16, Pin.OUT)

print('請把機器翻背面: 觀看內建 LED 的狀態: ')
while True:
    led.value(1)  # 關閉 LED
    sleep(1)      # 延遲 1 秒
    print('滅')
    led.value(0)  # 開啟 LED
    sleep(1)      # 延遲 1 秒
    print('亮')

02. 操作 LCD 背光。

# 05_02. 操作 LCD 背光,並將 LCD 畫面設定為藍色。
from machine import Pin
from time import sleep

# 定義 LED 的輸出腳位,WiFiBoy Python IoT Pin 27 控制玩學機的背光 
led = Pin(27, Pin.OUT)

print('請觀察: 觀看正面 LCD 面板的狀態: ')
wb.cls(wb.BLUE)
while True:
    led.value(1)    # 開啟 LCD 背光
    sleep(0.6)      # 延遲 0.6 秒
    print('LCD 背光亮')
    led.value(0)    # 關閉 LED 背光
    sleep(0.4)      # 延遲 0.4 秒
    print('LCD 背光滅')

03. 當按下 A 鍵,清除螢幕畫面並將背景設定為粉紅色,機器後面的 LED 開始閃爍

# 05_03. 當按下 A 鍵,清除螢幕畫面並將背景設定為粉紅色,機器後面的 LED 開始閃爍
from machine import Pin
from time import sleep

# 定義 LED 的輸出腳位,WiFiBoy Python IoT Pin 27 控制玩學機的背光 
led1 = Pin(16, Pin.OUT)
led2 = Pin(27, Pin.OUT)
LEDState = 0
print('請觀察: 觀看正面 LCD 面板與背面 LED 的狀態: ')

wb.cls(wb.BLUE)
while True:
    if wb.getkey() == 2:
        led1.value(LEDState)
        led2.value(LEDState)
        LEDState = not LEDState
    time.sleep(1)

當按下 A 鍵,畫面上的計數器加一

# 05_04. 當按下 A 鍵,畫面上的計數器加一
from machine import Pin
from time import sleep
Counter = 0
Limit = 120
STEP = 1
print('請觀察: 觀看正面計數器的值: ')
wb.cls(wb.BLACK)
while True:
    if wb.getkey() == 2:
        wb.cls()
        time.sleep(0.1)
        Counter = Counter + STEP
        if Counter >= Limit:
            wb.str('Finish!', 16, 64, 2, 4)
            break
        wb.str(str(Counter), 16, 64, 2, 5)

做了四個練習,覺得有趣嗎?我們明天再繼續喔!

參考資料

  1. STEAN 教育學習網_Python教學

上一篇
04. 開發環境簡介使用 MicroSoft Code
下一篇
06. MicroPython 基礎語法簡介(中)
系列文
使用 WiFiBoy Python 玩學機來學物聯網應用 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言